package com.hugang.principle.inversion;

/**
 * 依赖倒置原则  完成Person接收消息的功能
 * 方式一：
 * 1、实现简单
 * 2、如果获取的不是邮件，而是微信、短信的信息，则需要新增类，同时Person也要增加响应的接收方法
 * 3、解决思路：引入一个接口IReceiver，表示接受者，Person与接口发生依赖关系
 * 由于Email、微信等都属于接收的范围，因此只需要让他们实现IReceiver接口即可
 *
 * @author hg
 * @date 2020/9/6 17:24
 */
public class DependencyInversionDemo1 {

    public static void main(String[] args) {
        Person person = new Person();
        person.receiveEmail(new Email());
        person.receiveWeixin(new Weixin());
    }
}

class Email {
    public String getInfo() {
        return "电子邮件信息：hello world";
    }
}

class Weixin {
    public String getInfo() {
        return "微信信息：hello world";
    }
}

class Person {
    public String receiveEmail(Email email) {
        return email.getInfo();
    }

    public String receiveWeixin(Weixin weixin) {
        return weixin.getInfo();
    }
}
